package leetcode;

/*
551. 学生出勤记录 I
给定一个字符串来代表一个学生的出勤记录，这个记录仅包含以下三个字符：
'A' : Absent，缺勤
'L' : Late，迟到
'P' : Present，到场
如果一个学生的出勤记录中不超过一个'A'(缺勤)并且不超过两个连续的'L'(迟到),那么这个学生会被奖赏。
你需要根据这个学生的出勤记录判断他是否会被奖赏。
示例 1:
输入: "PPALLP"
输出: True
示例 2:
输入: "PPALLL"
输出: False
*/

public class problems_557 {
    public static void main(String[] args) {
        System.out.println(new Solution().reverseWords("Let's take LeetCode contest"));
    }

    static class Solution {
        public String reverseWords(String s) {
            char[] sChar = s.toCharArray();
            int index = 0;
            while (index < sChar.length){
                int right = s.indexOf(' ', index);
                if (right == -1) right = sChar.length;
                reverse(sChar, index, right - 1);
                index = right + 1;
            }
            return new String(sChar);
        }
        private void reverse(char[] sChar, int left, int right) {
            if (right >= sChar.length) right = sChar.length - 1;
            while (left < right) {
                char temp = sChar[left];
                sChar[left] = sChar[right];
                sChar[right] = temp;
                left++;
                right--;
            }
        }
    }
}